package com.itheima.utils;

import java.util.Random;

/**
 * @author : [chenys]
 * @version : [v1.0]
 * @Description : 随机生成验证码工具
 * @createTime : [2022/5/25 11:33]
 */
public class ValidateCodeUtils {

    /**
     * 随机生成数字验证码
     * @author chenxys
     * @param length 验证码长度[4/6]
     * @return java.lang.Integer
     */
    public static Integer generateValidateCode(int length){
        Integer code = null;
        if (length == 4){
            //生成随机数，最大为9999
            code = new Random().nextInt(9999);
            //不满4位数，加1000 保证为四位数
            if (code < 1000){
                code += 1000;
            }
        }else if (length == 6){
            //生成随机数,最大999999
            code = new Random().nextInt(999999);
            //不满6位数，加100000 保证为六位数
            if (code < 100000){
                code += 100000;
            }
        }else {
            throw new RuntimeException("只能生成4位或6位数字验证码");
        }
        return code;
    }

    /**
     * 随机生成字符串验证码
     * @author chenxys
     * @param length 验证码长度
     * @return java.lang.String
     */
    public static String generateValidateCodeString(int length){
        Random random = new Random();
        //将获得的随机数获取hash
        String hash1 = Integer.toHexString(random.nextInt());
        //对获得的hash进行截取字符串
        return hash1.substring(0,length);
    }
}
